﻿/*************************************
 * Creator:SunnyPaine
 * DateTime:2022/8/22 15:21:52
 * Description:<Description>
 * CopyRight:
 * ***********************************/

using System;

namespace SunnyPaine.Autofac.Extension.Stereotype.Attributes
{
    /// <summary>
    /// 表示被标记的类型是可以作为Autofac创建实例的引用类型。
    /// </summary>
    [AttributeUsage(AttributeTargets.Interface)]
    public class InjectAttribute : Attribute
    {
        /// <summary>
        /// 使用额外的接口作为注册实例的类型。
        /// </summary>
        public Type[] ExterInterfaces { get; set; }

        /// <summary>
        /// 使用默认的参数创建 <see cref="InjectAttribute"/> 的实例。
        /// </summary>
        public InjectAttribute() { }

        /// <summary>
        /// 使用指定的参数创建 <see cref="InjectAttribute"/> 的实例。
        /// </summary>
        /// <param name="exterInterfaces">额外的接口类型。</param>
        public InjectAttribute(params Type[] exterInterfaces)
        {
            this.ExterInterfaces = exterInterfaces;
        }
    }
}
